using System;

public class Person
{
    private string name; // 封装，私有字段

    public string Name // 公有属性
    {
        get { return name; }
        set
        {
            if (!string.IsNullOrEmpty(value)) // 设置约束
                name = value;
        }
    }

    public int Age { get; private set; } // 只读属性，只能在构造函数中赋值

    public Person(int age) // 构造方法
    {
        Age = age; // 通过构造方法设置只读属性的值
    }

    public void Introduce() // 方法
    {
        Console.WriteLine($"你好，我的名字是 {name}，我 {Age} 岁。");
    }

    // 主方法
    public static void Main(string[] args)
    {
        var person = new Person(25); // 通过构造方法设置年龄
        person.Name = "张三"; // 设置名称
        person.Introduce(); // 调用方法
    }
}
